Stored Procedure এবং Trigger এর ব্যবহার

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো |
206
206

Stored Procedure এবং Trigger দুটি SQL-ভিত্তিক বৈশিষ্ট্য, যা ডেটাবেজে ব্যবহৃত হয় বিভিন্ন কার্যকলাপ স্বয়ংক্রিয়ভাবে সম্পাদন করতে। এগুলি ডেটাবেজের পারফরম্যান্স উন্নত করতে এবং ডেটা ইন্টিগ্রিটি এবং সিকিউরিটি বজায় রাখতে সাহায্য করে। যদিও Stored Procedure এবং Trigger একই কাজের জন্য ব্যবহৃত হতে পারে, তাদের মধ্যে কিছু পার্থক্য রয়েছে এবং আলাদা কাজ করার জন্য তাদের ব্যবহার করা হয়।

এই টিউটোরিয়ালে আমরা Stored Procedure এবং Trigger এর মধ্যে পার্থক্য, তাদের ব্যবহার এবং উদাহরণ নিয়ে আলোচনা করব।


Stored Procedure কী?

Stored Procedure হল SQL কোডের একটি ব্লক যা ডেটাবেজে সংরক্ষিত থাকে এবং একাধিক SQL অপারেশন সম্পাদন করতে ব্যবহৃত হয়। এটি ডেটাবেজের ভেতরে একটি লজিক্যাল ইউনিট হিসেবে কাজ করে এবং যখন প্রয়োজন হয় তখন এটি কল করা হয়। Stored Procedure-এ সাধারণত একাধিক SQL স্টেটমেন্ট থাকে, যা কোনো কাজ বা লজিক সম্পাদন করে।

Stored Procedure এর সুবিধা:

  1. কোড পুনঃব্যবহারযোগ্যতা: একবার Stored Procedure তৈরি করার পরে, এটি বারবার ব্যবহৃত হতে পারে।
  2. পারফরম্যান্স উন্নতি: Stored Procedure-গুলো ডেটাবেজে সংরক্ষিত হওয়ায়, এগুলি সরাসরি ডেটাবেজ থেকে চালানো হয়, যার ফলে কার্যকারিতা উন্নত হয়।
  3. নিরাপত্তা: Stored Procedure ব্যবহার করে আপনি সিস্টেমের নিরাপত্তা বাড়াতে পারেন, কারণ ব্যবহারকারীদের সরাসরি SQL কুয়েরি চালানোর অনুমতি না দিয়ে, আপনি নির্দিষ্ট Stored Procedures কল করার অনুমতি দিতে পারেন।

Stored Procedure তৈরি করা:

CREATE PROCEDURE procedure_name (param1 datatype, param2 datatype)
BEGIN
  -- SQL statements
END;

Stored Procedure কল করা:

CALL procedure_name(param1, param2);

Stored Procedure উদাহরণ

ধরা যাক, আমাদের একটি users টেবিল রয়েছে এবং আমরা একটি Stored Procedure তৈরি করতে চাই, যা users টেবিলে একটি নতুন ইউজার যোগ করবে।

CREATE PROCEDURE AddUser (id INT, name VARCHAR, age INT)
BEGIN
  INSERT INTO users (id, name, age) VALUES (?, ?, ?);
END;

এখন, এই Stored Procedure কল করতে:

CALL AddUser(1, 'Alice', 25);

এটি users টেবিলে একটি নতুন ইউজার যোগ করবে যার id = 1, name = 'Alice', এবং age = 25


Trigger কী?

Trigger হল একটি বিশেষ ধরনের SQL কোড যা নির্দিষ্ট ইভেন্টের পরে স্বয়ংক্রিয়ভাবে কার্যকর হয়। Trigger সাধারণত INSERT, UPDATE, অথবা DELETE অপারেশনগুলির উপর নির্ভর করে কাজ করে। যখন কোনো নির্দিষ্ট ডেটাবেজ ইভেন্ট ঘটে, তখন Trigger স্বয়ংক্রিয়ভাবে কাজ শুরু করে।

Trigger এর সুবিধা:

  1. স্বয়ংক্রিয় কার্যক্রম: Trigger ব্যবহার করে, ডেটাবেজে পরিবর্তন ঘটানোর সময় স্বয়ংক্রিয় কার্যক্রম সম্পাদন করা যায়।
  2. ডেটা ইন্টিগ্রিটি বজায় রাখা: Trigger ডেটার ইনটিগ্রিটি নিশ্চিত করতে সাহায্য করে, যেমন ডেটাবেজের কোনো টেবিলের মধ্যে ডুপ্লিকেট এন্ট্রি প্রতিরোধ করা।
  3. অডিটিং: Trigger ব্যবহার করে আপনি ডেটাবেজের পরিবর্তনগুলো ট্র্যাক করতে পারেন (যেমন, কোন ইউজার কোন রেকর্ড আপডেট করেছে)।

Trigger তৈরি করা:

CREATE TRIGGER trigger_name
AFTER INSERT ON table_name
FOR EACH ROW
BEGIN
  -- SQL statements
END;
  • AFTER: Trigger একটি কার্যক্রম শেষ হওয়ার পর কল হবে।
  • BEFORE: Trigger একটি কার্যক্রম চালানোর আগে কল হবে।
  • FOR EACH ROW: প্রতি রেকর্ডের জন্য Trigger কার্যকর হবে।

Trigger উদাহরণ

ধরা যাক, আমাদের users টেবিল রয়েছে এবং আমরা এমন একটি Trigger তৈরি করতে চাই যা users টেবিলে কোনো নতুন ইউজার ইনসার্ট হওয়ার পর একটি লগ টেবিল তৈরি করবে।

CREATE TRIGGER logNewUser
AFTER INSERT ON users
FOR EACH ROW
BEGIN
  INSERT INTO log (message) VALUES ('New user added: ' || NEW.name);
END;

এটি users টেবিলে নতুন ইউজার ইনসার্ট হলে log টেবিলে একটি বার্তা যুক্ত করবে, যেখানে NEW.name নতুন ইউজারের নাম ধারণ করবে।


Stored Procedure এবং Trigger এর মধ্যে পার্থক্য

বৈশিষ্ট্যStored ProcedureTrigger
ক্রিয়া সম্পাদনকল করার জন্য ম্যানুয়ালি চালানো হয়নির্দিষ্ট ইভেন্ট ঘটলে স্বয়ংক্রিয়ভাবে কার্যকর হয়
কোড এক্সিকিউটডেটাবেজের সাথে যুক্ত হওয়ার পরে কল করা হয়ডেটাবেজে ঘটিত যেকোনো পরিবর্তন বা ইভেন্ট trigger করবে
নির্দেশনা গ্রহণপ্যারামিটার গ্রহণ করতে পারেপ্যারামিটার গ্রহণ করতে পারে না
ব্যবহারএকটি নির্দিষ্ট কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়ডেটাবেজে INSERT, UPDATE, DELETE অপারেশনগুলির পরে স্বয়ংক্রিয়ভাবে ব্যবহৃত হয়
ফলাফলরিটার্ন ভ্যালু থাকতে পারেকোনো ফলাফল রিটার্ন করে না

Stored Procedure এবং Trigger এর ব্যবহারিক উদাহরণ

১. Stored Procedure উদাহরণ:

ধরা যাক, আপনি একটি sales টেবিলের জন্য একটি Stored Procedure তৈরি করতে চান, যা নতুন বিক্রির তথ্য ইনসার্ট করবে।

CREATE PROCEDURE AddSale (sale_id INT, amount DECIMAL)
BEGIN
  INSERT INTO sales (sale_id, amount) VALUES (sale_id, amount);
END;

২. Trigger উদাহরণ:

এখন, আপনি এমন একটি Trigger তৈরি করতে চান, যা sales টেবিলে নতুন ইনসার্ট হওয়া বিক্রির পর স্বয়ংক্রিয়ভাবে একটি লগ টেবিল তৈরি করবে।

CREATE TRIGGER logSale
AFTER INSERT ON sales
FOR EACH ROW
BEGIN
  INSERT INTO sales_log (message) VALUES ('Sale added with ID: ' || NEW.sale_id);
END;

এটি sales টেবিলে নতুন বিক্রি হওয়ার পর sales_log টেবিলে একটি বার্তা লিখবে।


সারাংশ

Stored Procedure এবং Trigger ডেটাবেজ অপারেশনগুলিকে আরও কার্যকরী এবং নিরাপদ করে তোলে। Stored Procedure কোড পুনঃব্যবহারযোগ্য এবং কার্যকরী হওয়ার জন্য ব্যবহৃত হয়, যেখানে Trigger স্বয়ংক্রিয়ভাবে নির্দিষ্ট ডেটাবেজ পরিবর্তন ঘটানোর পর কার্যকর হয়। এগুলির ব্যবহার ডেটাবেজের পারফরম্যান্স উন্নত করতে এবং ডেটা সুরক্ষা নিশ্চিত করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion